package com.ctshk.rpc.order.localfun.req;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;


/**
 * <p>
 * 当地玩乐-填写订单页-核对订单信息新增订单相关-订单 入参
 * </p>
 *
 * @author 廖胤松
 * @since 2021-05-12
 */
@Data
@ApiModel(value="LocalFunAppOrderPorductReq请求对象", description="预订中心景点门票-填写订单页-核对订单信息新增订单相关-订单")
public class LocalFunAppOrderPorductReq implements Serializable {
    private static final long serialVersionUID = -4815568459589063826L;

    @NotNull(message = "产品id不能为空")
    @ApiModelProperty(value = "产品id")
    private Long productId;

    @ApiModelProperty(value = "联系人姓")
    @NotEmpty(message = "联系人姓不能为空")
    private String surname;

    @ApiModelProperty(value = "联系人名")
    @NotEmpty(message = "联系人名不能为空")
    private String name;

    @ApiModelProperty(value = "联系人姓名")
    private String contactName;

    @ApiModelProperty(value = "联系人手机区号")
    @NotEmpty(message = "联系人手机区号不能为空")
    private String contactMobileAreaCode;

    @ApiModelProperty(value = "联系人手机")
    @NotEmpty(message = "联系手机不能为空")
    private String contactMobile;

    @ApiModelProperty(value = "订单联系人称谓 (1:先生;2:女士;3:小姐;4:男童;5:女童)")
    @NotNull(message = "订单联系人称谓不能为空")
    private Integer appellation;

    @ApiModelProperty(value = "联系人邮箱")
    private String contactEmail;

    @ApiModelProperty(value = "会员积分抵扣")
    private BigDecimal integralDeduction;

    @ApiModelProperty(value = "会员ID")
    private Long memberId;

    @ApiModelProperty(value = "是否使用积分：1使用，0不使用")
    private Integer usingPointsWhether;

    @ApiModelProperty(value = "积分")
    private Integer integral;

    @ApiModelProperty(value = "使用积分")
    private Integer usingPoints;

    @ApiModelProperty(value = "会员用户名")
    private String ctsLogin;

    @ApiModelProperty(value = "会员密码")
    private String ctsPassword;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "优惠券代码")
    private String couponCode;

    @ApiModelProperty(value = "优惠券抵扣金额")
    private BigDecimal couponDeduction;

    @ApiModelProperty(value = "购买总数量")
    @NotNull(message = "门票总数不能为空")
    private Integer num;

    @ApiModelProperty(value = "产品单价")
    @NotNull(message = "产品单价不能为空")
    private BigDecimal singleTicketFee;

    @ApiModelProperty(value = "使用日期")
    @NotNull(message = "使用时间不能为空")
    private LocalDate useDate;

    @ApiModelProperty(value = "单张服务费")
    private BigDecimal fee;

    @ApiModelProperty(value = "取票类型")
    private String ticketType;

    @ApiModelProperty(value = "取票地址")
    private String ticketAddress;

    @ApiModelProperty(value = "取票时间")
    private LocalDateTime ticketTime;

    @ApiModelProperty(value = "收据抬头")
    private String receiptTitle;

    @ApiModelProperty("门店主数据ID")
    private Long salesRoomId;

    @ApiModelProperty(value = "渠道来源")
    @NotNull(message = "渠道来源不能为空")
    @Range(min = 1,max = 7)
    private Long channelId;
    
    @ApiModelProperty(value = "规格ID1")
    private Long attr1Id;

    @ApiModelProperty(value = "规格ID2")
    private Long attr2Id;
}
